<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>
        //微任务 与 宏任务 的执行顺序 （微任务要优先于宏任务）
        
        setTimeout(()=>{
            console.log('宏任务')
        })
        new Promise((resolve,reject)=>{
            resolve()
            console.log('Promise 构造函数的内容会立即执行')
        }).then(()=>{
            console.log('微任务')
        })
        console.log('主线程')

        //上面代码的执行顺序是：
        // 1 .Promise 构造函数的内容会立即执行
        // 2 .主线程
        // 3 .微任务
        // 4 .宏任务


        //JavaScript 的事件循环中有两种主要的异步任务队列：
       // 宏任务	Task Queue（宏任务队列）	setTimeout、setInterval、setImmediate、I/O、UI 渲染等
       //微任务	Microtask Queue	Promise.then/catch/finally、queueMicrotask、Mutati

    </script>
</body>
</html>